Chồng giao thức

Một chồng giao thức (tiếng Anh: protocol stack) là hình thức cài đặt phần mềm cho một bộ giao thức mạng máy tính (computer networking protocol suite). Hai thuật ngữ này thường được dùng lẫn lộn. Thực ra, bộ giao thức là định nghĩa của các giao thức còn chồng giao thức là một hình thức xử lý bộ giao thức bằng phần mềm.Các giao thức trong một bộ thường được thiết kế cho một mục đích duy nhất. Việc phân module này làm cho nhiệm vụ thiết kế và đánh giá dễ dàng hơn. Do mỗi module giao thức thường giao tiếp với hai module khác, chúng thường được hình dung như các tầng trong một chồng các giao thức. Giao thức thấp nhất luôn làm việc với các tương tác vật lý "bậc thấp" với phần cứng. Mỗi tầng cao hơn lại bổ sung thêm tính năng mới. Các ứng dụng người dùng theo thói quen thường chỉ tương tác với các tầng trên cùng. (Xem thêm mô hình OSI.)Trong cài đặt thực tế, các chồng giao thức thường được chia thành ba phần chính dành cho môi trường truyền dẫn, giao vận, và ứng dụng. Một hệ điều hành cụ thể thường có hai giao diện phần mềm được định nghĩa chặt chẽ, một nằm giữa các tầng môi trường và giao vận, và một nằm giữa các tầng giao vận và các ứng dụng.Giao diện môi trường-giao vận định nghĩa cách phần mềm giao thức giao vận sử dụng các loại phần cứng và môi trường cụ thể. Ví dụ, giao diện này định nghĩa cách phần mềm giao vận TCP/IP liên lạc với phần cứng Ethernet. Ví dụ về các giao diện này bao gồm ODINDIS trong hệ điều hành Microsoft WindowsDOS.Giao diện ứng dụng-giao vận định nghĩa cách các chương trình ứng dụng sử dụng các tầng giao vận. Ví dụ, giao diện này có thể định nghĩa các một trình duyệt Web nói chuyện với phần mềm giao vận TCP/IP. Ví dụ về các giao diện này bao gồm Berkeley socket và các dòng System V các hệ điều hành Unix, và Winsock các hệ điều hành của Microsoft.